Hi,
That's very strange.
What does this query give you when you run it in context of commerce database
SELECT c.[MetaFieldId], f.Name
FROM .[dbo].[MetaClassMetaFieldRelation] c
inner join [dbo].MetaField f
on c.MetaFieldId = f.MetaFieldId
where MetaClassId in (Select metaclassid from [dbo].MetaClass where Name = 'LineItem')
/Q
Hi,
Here the result for your query :
MetaFieldId | Name |
557 | LineItemId |
558 | OrderFormId |
559 | OrderGroupId |
560 | Catalog |
561 | CatalogNode |
562 | ParentCatalogEntryId |
563 | CatalogEntryId |
564 | Quantity |
565 | PlacedPrice |
566 | ListPrice |
567 | LineItemDiscountAmount |
568 | OrderLevelDiscountAmount |
569 | ShippingAddressId |
570 | ShippingMethodName |
571 | ShippingMethodId |
572 | ExtendedPrice |
573 | Description |
574 | Status |
575 | DisplayName |
576 | AllowBackordersAndPreorders |
577 | InStockQuantity |
578 | PreorderQuantity |
579 | BackorderQuantity |
580 | InventoryStatus |
581 | LineItemOrdering |
582 | ConfigurationId |
583 | MinQuantity |
584 | MaxQuantity |
585 | ProviderId |
586 | ReturnReason |
587 | OrigLineItemId |
588 | ReturnQuantity |
589 | WarehouseCode |
590 | IsInventoryAllocated |
I've done the same query with LineItemEx because we have extra fields added to line item :
MetaFieldId | Name |
307 | IsPromoItem |
308 | PromoMinimumAmount |
310 | EcoFees |
311 | PromoID |
557 | LineItemId |
558 | OrderFormId |
559 | OrderGroupId |
560 | Catalog |
561 | CatalogNode |
562 | ParentCatalogEntryId |
563 | CatalogEntryId |
564 | Quantity |
565 | PlacedPrice |
566 | ListPrice |
567 | LineItemDiscountAmount |
568 | OrderLevelDiscountAmount |
569 | ShippingAddressId |
570 | ShippingMethodName |
571 | ShippingMethodId |
572 | ExtendedPrice |
573 | Description |
574 | Status |
575 | DisplayName |
576 | AllowBackordersAndPreorders |
577 | InStockQuantity |
578 | PreorderQuantity |
579 | BackorderQuantity |
580 | InventoryStatus |
581 | LineItemOrdering |
582 | ConfigurationId |
583 | MinQuantity |
584 | MaxQuantity |
585 | ProviderId |
586 | ReturnReason |
587 | OrigLineItemId |
588 | ReturnQuantity |
589 | WarehouseCode |
590 | IsInventoryAllocated |
The @LineItemId seems to be the first one System Meta Field from both query.
Hi,
I think I found the problem. My website is on a migration process from 6.2 / R1 to the lastest for both product. In MetaField table, the field IsKeyField was set to False (0) for every field. Thats why @LineItemId was not the first one.
Anyway to fix this without having futur problems ? I can set manually via SQL fields from my backup (R1 Commerce) but I can miss new fields ...
Thanks!
When we call AcceptChanges on CartHelper, We got a SQL exception from this stored procedure :
ecf_LineItem_Insert
Error : The formal parameter "@AllowBackordersAndPreorders" was not declared as an OUTPUT parameter, but the actual parameter passed in requested output.
Why EPiServer code set @AllowBackordersAndPreorders as an InputOutput parameters ? @LineItemId should be InputOutput parameter according to SQL Schema.
After using decompiled sources on this version, I understand the error but I dont know how to fix it. EPiServer Code set the first MetaField from the MetaClass as an InputOutput parameter. In my case, it's @AllowBackordersAndPreorders not @LineItemId. Can I fix it to make sure @LineItemId it's the first one ?