Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Magento zamiast Fax data dsotawy
designez
post
Post #1





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 11.08.2012

Ostrzeżenie: (0%)
-----


Witam, staram się uporać z modyfikacją i nie mogę przejść jednego ostatniego problemu. Chcę w tabeli gdzie domyślnie jest fax umeiścić wybrany termin dostawy.


Tabela "sales_flat_order_address" przechowuje dane klienta i FAX pole które mnie interesuje
Tabela "sales_flat_order" przechowuje inne informacje np "shipping_date"

Mamy integracje z zewnętrznym programem który pobiera zamówienia niestety tylko z jednej tabeli "sales_flat_order_address" i nie możemy dodać własnej kolumny bo XML jest dosyć restrykcyjny (Linnworks)
data dostawy to nasz pomysł i klient ją wybiera dla dużych przedmiotów.

Te tabele nie są tworzone jednocześnie i nie wiem która jest pierwsza a która jako druga. Czy jest możliwość jakimś kluczem przenieść np datę do Fax albo może ktoś ma pomysł jak podczas finalizowania tranzakcji uzyskać
dostęp do tabeli i podmienić dane. Magento ma ogrom plikówuczę się tego i proszę o pomoc.

Obie tabele mają relacje i klucz "entity_id"

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
designez
post
Post #2





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 11.08.2012

Ostrzeżenie: (0%)
-----


poniższy kod działa jest jeden problem. Wychodzi na to że Magento najpierw zapisuje "sales_flat_order" potem "sales_flat_order_address" więc nie mogę pobrać danych bo ich tam jeszcze nie ma


  1. CREATE OR REPLACE TRIGGER sales
  2. after INSERT ON sales_flat_order
  3. FOR each row
  4.  
  5. UPDATE sales_flat_order_address v
  6. INNER JOIN sales_flat_order vi ON v.parent_id = vi.entity_id
  7. SET v.fax = vi.shipping_date
  8. WHERE v.parent_id = LAST_INSERT_ID()
  9.  


Witam, poniższy triger nie działa. Neistety nie mamy unikalnych wartości poza id które są takei same w obu tabelach.
  1. CREATE OR REPLACE TRIGGER sales
  2. after INSERT ON sales_flat_order_status_history
  3. FOR each row
  4.  
  5. UPDATE sales_flat_order_address v
  6. INNER JOIN sales_flat_order vi ON v.parent_id = vi.entity_id
  7. SET v.fax = vi.shipping_date
  8. WHERE v.parent_id = LAST_INSERT_ID()



Natomiast ten działa jednak dla wszystkich rekordów. Jak zrobić aby zmianiał datę tylko w 2 świeżych rekordach po najwyższym ID
  1. CREATE OR REPLACE TRIGGER sales
  2. after INSERT ON sales_flat_order_status_history
  3. FOR each row
  4.  
  5. UPDATE sales_flat_order_address v
  6. INNER JOIN sales_flat_order vi ON v.parent_id = vi.entity_id
  7. SET v.fax = vi.shipping_date


Ten post edytował designez 2.12.2015, 17:28:08
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.12.2025 - 11:05